import java.util.Scanner;

public class Day23 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String str1 = in.nextLine();
            String str2 = in.nextLine();
            // 状态表示：dp[i][j] 表示 str1 的前i个字符转换为 str2 的前 j 个字符的编辑距离
            // 状态转移方程：dp[i][j] = Math.min(
            // dp[i-1][j] + 1, 表示增加一个字符
            // dp[i][j-1] + 1, 表示删除一个字符
            // dp[i-1][j-1] + str1.charAt(i)== str2.charAt(j)?0:1 表示替换一个字符（分情况）
            // )
            // 初始化（增加一行一列作为辅助状态） dp[0][j] = j
            //        dp[i][0] = i

            // 1.创建dp表
            char[] ch1 = str1.toCharArray();
            char[] ch2 = str2.toCharArray();
            int len1 = ch1.length;
            int len2 = ch2.length;
            int[][] dp = new int[len1+1][len2+1];
            // 2.初始化
            for (int i = 0; i <= len1; i ++) {
                dp[i][0] = i;
            }
            for (int j = 0; j <=len2; j ++) {
                dp[0][j] = j;
            }
            // 3.填表
            for (int i = 1; i <= len1; i ++) {
                for (int j = 1; j <= len2; j ++) {
                    dp[i][j] = Math.min(Math.min(dp[i-1][j] + 1,dp[i][j-1] + 1)
                            ,dp[i-1][j-1] + (ch1[i-1] == ch2[j-1]?0:1));
                }
            }
            // 4.返回结果
            System.out.println(dp[len1][len2]);
        }
    }
}
